iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
自我挑戰組

Python 編程精通之路系列 第 10

第十天:物件導向編程(OOP)基礎

  • 分享至 

  • xImage
  •  

物件導向編程(OOP)是一種軟體開發范式,它基於"物件"的概念,將數據和操作封裝在一起,以更好地組織和管理代碼。在Python中,一切皆是物件,從數字和字串到複雜的數據結構和應用程序都可以用OOP的方式來看待。

類和物件:

在OOP中,類(class)是一種定義物件屬性和方法的模板。物件(object)是類的實例,它實際包含了屬性的值以及可以執行的方法。例如,我們可以創建一個簡單的Person類:

class Person:
    def init(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

這個類有兩個屬性(name和age)和一個方法(greet)。

創建物件:

要創建Person類的物件,您可以這樣做:

person1 = Person("Alice", 30)
person2 = Person("Bob", 25)

現在,我們已經創建了兩個Person物件,person1和person2,每個物件都有自己的屬性值。

訪問屬性和方法:

您可以訪問物件的屬性和方法,例如:

print(person1.name)  # 輸出:Alice
person2.greet()      # 輸出:Hello, my name is Bob and I am 25 years old.

封裝:

OOP還引入了封裝的概念,這意味著類的內部實現是隱藏的,只有公共接口(屬性和方法)可以訪問。這有助於保持代碼的安全性和可維護性。

繼承:

繼承允許您創建一個新的類,從現有的類繼承屬性和方法。這提供了代碼的重用性。例如,您可以創建一個Student類,它繼承了Person類的屬性和方法。

class Student(Person):
    def init(self, name, age, student_id):
        super().init(name, age)
        self.student_id = student_id

    def study(self, subject):
        print(f"{self.name} is studying {subject}.")

多態性:

多態性允許不同的類對相同的方法進行不同的實現。這提供了靈活性和可擴展性。例如,Person和Student類都可以有自己的greet方法,並根據上下文自動調用適當的方法。

def introduce(person):
    person.greet()

person1 = Person("Alice", 30)
person2 = Student("Bob", 25, "12345")

introduce(person1)  # 輸出:Hello, my name is Alice and I am 30 years old.
introduce(person2)  # 輸出:Hello, my name is Bob and I am 25 years old.

物件導向編程是Python編程的核心概念之一,它使代碼更組織化、可讀性更高並且更容易擴展。這只是OOP的入門,還有很多高級主題,如多重繼承、抽象類和介面,可以進一步探討。


上一篇
第九天:模組和庫的使用
下一篇
第十一天:繼承和多態
系列文
Python 編程精通之路20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言